import axios from 'axios'
import { Loading, Message,MessageBox} from 'element-ui'
import qs from 'qs'

axios.defaults.baseURL = 'http://fat.teyunquan.com/ZKZX-COMPANY-API'
// axios.defaults.baseURL = ''
axios.defaults.timeout = 30000

var loadings
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 发动请求需携带token

  let token = JSON.parse(window.sessionStorage.getItem('token'))
  if (token) {
    config.headers['Authorization'] = 'Bearer ' + token.access_token
    config.headers['userid'] = token.userid
    config.headers['companyId'] = token.companyId
  }
  // config.headers['Content-Type'] = ' application/json;charset=utf-8'  //转换数据格式
  // application/x-www-form-urlencoded
  // application/json;charset=utf-8
  // 在每次ajax获取请求之前获取loading弹窗
  // loadings = Loading.service()
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
  // 在响应之后，关闭弹窗
  return response
}, function (error) {
  // 相应错误关闭弹窗
  let { response } = error
  if(response.status == 401){
    MessageBox('登录时效已过期请重新登录', '提示', {
      confirmButtonText: '确定',
      type: 'warning'
    }).then(() => {
      window.location.href = "/";
    })
  }
  return Promise.reject(error.response)
  // if (response) {
  //   // 服务器有返回内容
  //   var errormsg = ''
    
  //   Message({ type: 'warning', message: errormsg })
  //   return Promise.reject(error.response)
  // } else {
  //   // 服务器连结果都没有返回  有可能是断网或者服务器奔溃
  //   if (!window.navigator.online) {
  //     // 断网处理
  //     Message('网络中断')
  //   } else {
  //     // 服务器奔了
  //     Message('服务器奔了')
  //   }
  //   return Promise.reject(error.response)
  // }

})

// // 对get请求进行封装
// export function get(url, params) {
//   return new Promise((resolve, reject) => {
//     axios.get(url, {
//       params: params
//     }).then(res => {
//       resolve(res.data)
//     }).catch(err => {
//       reject(err.data)
//     })
//   })
// }
// // 对post请求进行封装
// export function post(url, params) {
//   return new Promise((resolve, reject) => {
//     axios.post(url, params)
//       .then(res => {
//         resolve(res.data)
//       }).catch(err => {
//         reject(err.data)
//       })
//   })
// }




export default axios;